Zig | ||
![]() | ||
Date de première version | ||
---|---|---|
Paradigme | Fonctionnel, impératif | |
Auteur | Andrew Kelley | |
Développeur | Andrew Kelley, Open Source | |
Dernière version | 0.12.0 (20/04/2024) | |
Typage | Fort, statique | |
Influencé par | C, C++, LLVM IR, Go, Rust, JavaScript | |
Écrit en | C++, Zig | |
Systèmes d'exploitation | Multiplateforme | |
Licence | Licence MIT | |
Site web | https://ziglang.org/ | |
Extensions de fichiers | .zig | |
modifier ![]() |
Zig est un langage de programmation compilé impératif polyvalent, typé statiquement, conçu par Andrew Kelley[2],[3]. Le langage est conçu pour la «robustesse», l'«optimalité» et la «maintenabilité»[4],[5], prenant en charge les génériques et la réflexion au moment de la compilation, la compilation croisée et la gestion manuelle de la mémoire[6]. Un objectif majeur du langage est de concurrencer (et d'améliorer) C[7],[8], tout en s'inspirant également de Rust[9],[10], entre autres.
Zig possède de nombreuses fonctionnalités pour la programmation de bas niveau, notamment des types composés (struct) avec zéro padding, des entiers de taille arbitraire[11] et différents types de pointeurs[12].
Le compilateur, originellement écrit en C++, a lentement été réécrit en Zig pour être aujourd'hui disponible dans sa version entièrement implémentée en Zig, nommée Stage 2. Il utilise LLVM 11[13] comme back-end[14] , prenant en charge plusieurs de ses cibles natives[15], bien que d'autres back-ends soient en développement. Le compilateur est un logiciel libre et open source distribué sous la licence MIT[16]. Le compilateur Zig fournit la possibilité de compiler du C et du C++, similaire à Clang en utilisant respectivement la commande "zig cc" et "zig c++"[17]. Le langage de programmation Nim prend en charge l'utilisation de zig cc comme compilateur C. [18]